
local w,h = 400,200
local ui = class.panel:builder 
{
    fdf = 'tooltip_backdrop0',
    x = (1920 - w)/2,
    y = (1080 - h)/2,
    w = w,
    h = h,
}
ui:hide()
ui.title = ui:add_frame('tooltip_backdrop0',(ui.w-150)/2,-30,150,60)
ui.title.text = ui.title:add_text('保留技能',0,0,nil,nil,14,5)
ui.tip2 = ui:add_text('你可以保留一个技能进化,也可以不保留',0,ui.h-50,nil,30,12,5)

ui.enter = ui:add_namebutton('继续进化',(ui.w-300)/2,ui.h,125,50)
ui.enter:hide()
ui.close = ui:add_namebutton('不保留',(ui.w-300)/2 + 175,ui.h,125,50)


--展示技能
local count = 2
local w0,h0 = 96,96
local gap = 24
local x0 = (ui.w - ((w0+gap)*count - gap))/2
ui.skills = {}
for i=1,count do
    local button = ui:add_button('1',x0 + (i-1)*(w0+gap),40,w0,h0,1)
    button.index = i
    ui.skills[i] = button
end

--点击
function ui:on_button_clicked(button)
    if button.index or button==self.close then
        ac.sync('界面-选择保留技能',button.index or 0)
    end
    if button==self.enter then
        ac.sync('界面-选择继续进化')
    end
end

--鼠标显示
function ui:on_button_mouse_enter(button)
    local skill = button and button.skill
    if skill then
        local tip = skill:get_tip()
        self:tooltip(skill.title or skill.name,tip,'auto')
    end
end

--设置内容
function ui:set_data(data)
    local player = ac.player.self
    local hero = player.hero
    for a,button in ipairs(self.skills) do
        local skill = data[a]
        button.skill = skill
        button:set_normal_image(skill.art)
    end
    if hero and hero:get_data('保留技能次数',0)>=4 then
        ui.tip2:set_text('继续进化将替换上述技能')
        ui.title.text:set_text('继续进化')
        ui.close.text:set_text('|cffff0000不进化|r')
        ui.enter:show()
    else
        ui.tip2:set_text('你可以保留一个技能进化,也可以不保留')
        ui.title.text:set_text('保留技能')
        ui.close.text:set_text('|cffff0000不保留|r')
        ui.enter:hide()
    end
    self:show()
end


ac.sync:event '界面-选择保留技能'(function(_,player,index)
    local hero = player.hero
    local data = player:get_data('保留技能表')
    local temp = data and data[index]
    if hero then
        if temp then
            if hero:get_data('保留技能次数',0)<4 then
                player:notify('玩家-确定保留技能',player,temp)
                if player:is_self() then
                    ui:hide()
                end
            end
            return
        else
            if hero:get_data('保留技能次数',0)==4 then
                hero.max_level = 100
                player:set_data('能进化',false)
            end
        end
        if player:is_self() then
            ui:hide()
        end
    end
end)

ac.sync:event '界面-选择继续进化'(function(_,player)
    local data = player:get_data('保留技能表')
    if data then
        player:set_data('能进化',false)
        player:notify('玩家-开始更换英雄',player)
    end
    if player:is_self() then
        ui:hide()
    end
end)

ac.game:event '玩家-选择保留技能'(function(_,player,data)
    player:set_data('保留技能表',data)
    if player:is_self() then
        ui:set_data(data)
    end
end)